Modern Software Engineering: Doing What Works to Build Better Software Faster

Modern Software Engineering: Doing What Works to Build Better Software Faster

  • Downloads:3891
  • Type:Epub+TxT+PDF+Mobi
  • Create Date:2022-02-18 08:51:49
  • Update Date:2025-09-06
  • Status:finish
  • Author:David Farley
  • ISBN:0137314914
  • Environment:PC/Android/iPhone/iPad/Kindle

Summary

Improve Your Creativity, Effectiveness, and Ultimately, Your Code

In Modern Software Engineering, continuous delivery pioneer David Farley helps software professionals think about their work more effectively, manage it more successfully, and genuinely improve the quality of their applications, their lives, and the lives of their colleagues。

Writing for programmers, managers, and technical leads at all levels of experience, Farley illuminates durable principles at the heart of effective software development。 He distills the discipline into two core exercises: learning and exploration and managing complexity。 For each, he defines principles that can help you improve everything from your mindset to the quality of your code, and describes approaches proven to promote success。

Farley's ideas and techniques cohere into a unified, scientific, and foundational approach to solving practical software development problems within realistic economic constraints。 This general, durable, and pervasive approach to software engineering can help you solve problems you haven't encountered yet, using today's technologies and tomorrow's。 It offers you deeper insight into what you do every day, helping you create better software, faster, with more pleasure and personal fulfillment。
Clarify what you're trying to accomplish
Choose your tools based on sensible criteria
Organize work and systems to facilitate continuing incremental progress
Evaluate your progress toward thriving systems, not just more legacy code
Gain more value from experimentation and empiricism
Stay in control as systems grow more complex
Achieve rigor without too much rigidity
Learn from history and experience
Distinguish good new software development ideas from bad ones

Download

Reviews

Cristiano Morgado

Clean Code, Pragmatic Programmer and Continuous Delivery walk into a bar。。。 "Modern Software Engineering" does feel like the lovechild of these previous titles, giving a more overarching and generalized approach to software engineering, combining important concepts from code readability all the way up to delivery and releasability。Unfortunately, software engineering is often lacking in terms of actual engineering, with people working more based on guesswork and prayer rather than scientific expe Clean Code, Pragmatic Programmer and Continuous Delivery walk into a bar。。。 "Modern Software Engineering" does feel like the lovechild of these previous titles, giving a more overarching and generalized approach to software engineering, combining important concepts from code readability all the way up to delivery and releasability。Unfortunately, software engineering is often lacking in terms of actual engineering, with people working more based on guesswork and prayer rather than scientific experimentation and measurable iteration, so Dave tries to lay the foundation for proper engineering work, based off decades of experience from him and other engineers。All in all, a pretty solid foundational book for modern software engineers willing to take their craft to the next level and focus more on the engineering part of their job。 。。。more

Tolis

Dave is touching on some very important concepts in this book that you have to adopt as a software engineer if you want to become good at your profession。If you are an experienced software engineer you've already have learned about these concepts and hopefully you are practising themBy trying to prove the value of these concepts Dave is becoming very repetitive and that's my only problem with this book Dave is touching on some very important concepts in this book that you have to adopt as a software engineer if you want to become good at your profession。If you are an experienced software engineer you've already have learned about these concepts and hopefully you are practising themBy trying to prove the value of these concepts Dave is becoming very repetitive and that's my only problem with this book 。。。more

Eric Parent

Dave Farley's new book, Modern Software Engineering, proposes a holistic view of software engineering, admittedly a young and fragmented field。 Dave defined ten broad principles he uses as lenses to analyze how well-known approaches, methods, processes, and tools contribute to achieving higher stability and throughput。Despite a slow start, the book's pace quickly picks up in chapter 3, only to keep accelerating throughout。 Near the end of the book, chapter 14 is a fantastic 15-page summary that Dave Farley's new book, Modern Software Engineering, proposes a holistic view of software engineering, admittedly a young and fragmented field。 Dave defined ten broad principles he uses as lenses to analyze how well-known approaches, methods, processes, and tools contribute to achieving higher stability and throughput。Despite a slow start, the book's pace quickly picks up in chapter 3, only to keep accelerating throughout。 Near the end of the book, chapter 14 is a fantastic 15-page summary that just blew my mind!My main takeaway is that TDD and Continuous Delivery are foundational practices contributing to most of the ten principles。At the time of writing and despite its short 225-page count, I consider this work to be the closest thing to a unified theory of Software Engineering。 Essential reading! 。。。more

Sébastien Belzile

Good book。 The author knows what he is talking about。 Concepts discussed are indeed those that matters。 Part 3 (Optimize for Managing Complexity) is a must read, even if you already know the concepts。Downsides: might sound too general / not technical enough to some, and I think Farley uses too many words to make his points。 Overall, the book does not bring anything new to software development, but reading about those ideas / good practices / getting reminded about them is a good way to step up y Good book。 The author knows what he is talking about。 Concepts discussed are indeed those that matters。 Part 3 (Optimize for Managing Complexity) is a must read, even if you already know the concepts。Downsides: might sound too general / not technical enough to some, and I think Farley uses too many words to make his points。 Overall, the book does not bring anything new to software development, but reading about those ideas / good practices / getting reminded about them is a good way to step up your game。 。。。more

Leonid

Ideas, discussed and explained in the book: continuous delivery / releasability, TDD and writing testable code, cohesion / coupling / SRP。Worth reading if this topics interest you, if you already know (or, even better, follow) these concepts - safely skip。

Jorge DeFlon

A modern and really needed introduction to modern software engineering。 Required reading to all those interested in developing better software faster。

Nicolai Matthiesen

The book over promises and under delivers。If you really want to read this book visit his youtube channel instead。 On video he explains in more depth and provides actionable plans instead of only abstract ideas。Instead read Software Engineering by Ian Sommervile for the software engineering aspect, read Software architecture by Len bass for the software architecture and finally read devops handbook by Jez humble et。 al。 Reason is that Modern software engineering tries and fails to convey the same The book over promises and under delivers。If you really want to read this book visit his youtube channel instead。 On video he explains in more depth and provides actionable plans instead of only abstract ideas。Instead read Software Engineering by Ian Sommervile for the software engineering aspect, read Software architecture by Len bass for the software architecture and finally read devops handbook by Jez humble et。 al。 Reason is that Modern software engineering tries and fails to convey the same material。 。。。more

Henrik Samuelsson

A well worth read for anyone in the software industry that have managed to grasp the basics of software development and now want to take it to the next level。 But should also serve as a gentle reminder to highly experienced people on what really works to avoid being stressed out by massive technical debt, missed dead-lines, and long bug lists。David Farley have a background as a software engineer and have made contributions in the field of continuous integration。 He shares his expertise through v A well worth read for anyone in the software industry that have managed to grasp the basics of software development and now want to take it to the next level。 But should also serve as a gentle reminder to highly experienced people on what really works to avoid being stressed out by massive technical debt, missed dead-lines, and long bug lists。David Farley have a background as a software engineer and have made contributions in the field of continuous integration。 He shares his expertise through various media such as YouTube, books, and by providing training courses。The book aims to helps software professionals think about their work more effectively, manage it more successfully, and improve the quality of the code being developed。The book is split into three main parts where the first is about learning。 By learning is here meant how to be able to improve software development by learning what works and what does not。 Having (fast) feedback loops。 Experiment a lot but in a controlled way to be able deduce what helped。 Do not assume anything without testing your assumptions。 Benefits of working incrementally。Second part is about how to reduce complexity。 Working with modularity to be able to make changes and combine modules in new ways in future projects。 Cohesion, try to keep things together that change for the same reason。 Separation of concerns, the code, the by now classic example that a function should do one thing and do it well comes into play here。 Information hiding and abstraction to be able to hide away all the gory details and see the big picture when needed。 Strategies for minimizing the cost of coupling。Third part is shorter and is a high level discussion on tools。 Mainly pointers on how to achieve testability。The main material is mixed up with short real world stories that complements and the more theoretical main discussions。Farley comes across to me as he know what he is talking about both from a practical viewpoint and a more theoretical side。 He have been working with software development himself for many years but he also makes multiple references to valid books and research showing that he has also done his homework by taking time to learn。The material presented is in the book is maybe nothing ground breaking but it is presented in a good and clear way albeit sometimes at a very high level。 There is however some deep dives into actual code snippets。The "war stories" that breaks of the ordinary material regularly throughout the book complements the text very well and were both interesting as well as helping out to clarify the material。All the software companies that I have worked at could greatly improve the quality and efficiency if managing to get everyone to understand and start following the concepts presented in the book。 The same goes for me personally I can rarely be disciplined enough to work in the more structured way presented in the book even if it would help me greatly in the long run。A downside about the book is that you can feel a bit like you are left hanging and wonder what to do next now。 This is because the book is often written at a high level and lacks details。 On the other hand so will this book in the way it is written be able to be relevant for a long time and might even in the future become one of the classic software development books。 。。。more

Alex Sinclair

Dave Farley hits it out of the park again!This book should be required reading for everybody who works in software, including the non-technical managers。 Bringing together a lot of the top-tier thinking from the industry, this book really presents a coherent argument and strategy for modern software engineering。

Lewis Greenway-Jones

Everything important about software engineeringDistills everything that feels important about software engineering and still manages to explain everything in an accessible way。 It’s more than just a disconnected set of good ideas。 It’s a cohesive explanation of why those ideas work and how applying a scientific approach will help us test new ideas when we have them。 Really wish this book existed when I got my first programming job, but it’s still been valuable to me 8+ years into my career。

Trisha Gee

I absolutely loved this book, I cannot recommend it highly enough。 In fact, I gushed over it so much to Dave after I read an early access version that he did me the very great honour of asking me to write the Foreword!